home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / program / ddj0897.zip / DYN401.ZIP / dpp / token.d < prev    next >
Text File  |  1996-12-08  |  2KB  |  113 lines

  1.  
  2. /*
  3.  *
  4.  *    Copyright (c) 1994-1996 Algorithms Corporation
  5.  *    3020 Liberty Hills Drive
  6.  *    Franklin, TN  37067
  7.  *
  8.  *    ALL RIGHTS RESERVED.
  9.  *
  10.  *
  11.  *
  12.  */
  13.  
  14.  
  15. #include "dpp.h"
  16.  
  17.  
  18. defclass  Token : Link  {
  19.     iToken;            /*  String rep of token        */
  20.     long    iLine;        /*  source line found on or 0    */
  21.     int    iSpace;        /*  1=following char is space   */
  22. };
  23.  
  24.  
  25. cmeth    gNew()
  26. {
  27.     return gShouldNotImplement(self, "gNew");
  28. }
  29.  
  30. cmeth    gNewToken(char *tkn, long ln, int sp)
  31. {
  32.     object    obj;
  33.     ivType    *iv;
  34.  
  35.     obj = gNew(super);
  36.     iv = ivPtr(obj);
  37.     iToken = gNewWithStr(String, tkn);
  38.     iLine  = ln;
  39.     iSpace = sp;
  40.     return obj;
  41. }
  42.  
  43. imeth    object    gDispose, gDeepDispose ()
  44. {
  45.     gDispose(iToken);
  46.     return gDispose(super);
  47. }
  48.  
  49. imeth    char    *gStringValue()
  50. {
  51.     return gStringValue(iToken);
  52. }
  53.  
  54. imeth    gToken()
  55. {
  56.     return iToken;
  57. }
  58.  
  59. imeth    gChangeToken(char *str)
  60. {
  61.     gChangeStrValue(iToken, str);
  62.     return self;
  63. }
  64.  
  65. imeth    long    gLineNumber()
  66. {
  67.     return iLine;
  68. }
  69.  
  70. imeth    int    gSpace()
  71. {
  72.     return iSpace;
  73. }
  74.  
  75. imeth    gCopy, gDeepCopy ()
  76. {
  77.     object    obj = gCopy(super);
  78.     ivType    *niv = ivPtr(obj);
  79.     niv->iToken = gCopy(iToken);
  80.     return obj;
  81. }
  82.  
  83. imeth    gStringRepValue()
  84. {
  85.     return gStringRepValue(iToken);
  86. }
  87.  
  88. imeth    gStringRep()
  89. {
  90.     object    a, b, s;
  91.  
  92.     a = gStringRepValue(super);
  93.     b = gStringRepValue(iToken);
  94.     s = vBuild(String, gName(ClassOf(self)), " (", a, ", ", b, ")\n", NULL);
  95.     DISPOSE(a);
  96.     DISPOSE(b);
  97.     return s;
  98. }
  99.  
  100.  
  101. /*
  102.  *
  103.  *    Copyright (c) 1994-1996 Algorithms Corporation
  104.  *    3020 Liberty Hills Drive
  105.  *    Franklin, TN  37067
  106.  *
  107.  *    ALL RIGHTS RESERVED.
  108.  *
  109.  *
  110.  *
  111.  */
  112.  
  113.